/* 实现以下函数
f(1)() // 1
f(1)(2)(3)() // 6
f(1)(2)(3)(4)() // 10 */

/* // 法一：有BUG -> 当类似var a = add(1)(2); var b = add(2)(3);a();b();这种情况发生时
function add(num) {
    add.sum = 0;

    function sum(num) {
        if (num) {
            add.sum += num;
            return sum;
        }

        return add.sum
    }

    return sum(num);
}

add(1)() */


// 法二：修复上面的BUG
function add(numA) {
    let total = 0;

    function sum(numB) { // 使用闭包
        if (numB) {
            total += numB; // 累加
            return sum;
        }

        return total;
    }

    return sum(numA);
}

add(1)(2)